<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>问答</title>
</head>

<body>
    <!-- 
        问题1：一个Promise实例对象指定多个成功/失败的回调函数 都会进行调用吗？
        答： 一定会执行 但是前提是Promise对象的状态已经被更改为了成功/失败 但是就是不能是pending状态

        问题2： 改变Promise状态和指定回调函数执行 到底谁先谁后？
        答： 都有可能 正常情况下可以是先指定回调再改变状态 也可以是先改变状态再指定回调
        若执行器函数中为同步任务 则先修改状态 后指定回调
        若执行器函数中为一步任务 则先指定回调 再更改状态 更为常见 [Promise主要是为了执行异步任务]
     -->
    <script>
        let p1 = new Promise((resolve, reject) => {
            // 同步任务
            // resolve('ok')

            // 异步任务
            setTimeout(() => {
                resolve('ok')
            }, 4000)
        })
        setTimeout(() => {
            //这里先执行了回调 状态未更改 所以在第一秒未打印成功的返回值 
            //而是等待四秒后 更改了状态再进行打印输出
            p1.then(value => {
                console.log(value)
            }, reason => {
                console.log(reason)
            })
        }, 1000)
    </script>
</body>

</html>